//Steven Rychlik
//Gus Zarych
//Sarah Gray
//CPSC 315 Project 1
#include<string>

Class Relation {
private:
	string name;
	vector<vector<string>> myRelation;
	vector<string> types;
	vector<string> attributes;
public:
	//Constructor
	Relation();
	Relation (string relationName) {
	};
	Relation(string relationName, vector<string> attributes, vector<string> attributeTypes, vector<string> primaryKey) {
	};

	//Access / Update functions
	string getName() {
		return name;
	};
	vector<string> getAttributes() {
		return attributes;
	};
	vector<string> getRow(int rowIndex) {
	};
	vector<string> getColumn(string attribute) {
	};
	void insertData(vector<string> attributeList, vector<string> values) {
	};
	void updateData(string setStatement, string whereConditional) {
	};
	void deleteData(string whereConditional) {
	};
};

Class Database {
private:
	vector<Relation> myDatabase;
public:
	//Database functions
	Database();
	vector<string> relationNames() {
	};
	vector<vector<string>> relationAndAttributeNames() {
	};
	
	//Relation linked functions
	void insertData(string relationName, vector<string> attributeList, vector<string> values); {
		// If attribute list is empty, values is a full list of data (or Nulls at the end of the table)
	};
	void updateData(string relationName, string setStatement, string whereConditional) {
	};
	void deleteAll(string relationName) {
	};
	void deleteData(string relationName, string whereConditional) {
	};
	Relation query(string selectStatement, string fromStatement, string whereConditional) {
	};
};
